底下這張VI Snippet是LabVIEW內建範例中的XY Graph.vi(XY Graph Data Types),
示範了XY分佈圖的使用方法。
XY 分布圖在繪製時有兩種選擇=>
Single Plot(一條線)和Multi Plot(多條線)。
而且這兩種選擇都各有兩類畫法,分別對應兩類資料格式,
所以產生資料時,我們只要選擇其中一類即可。
詳細的資料格式如下:
(註: [ ]代表陣列,< >代表群組)
1.Single Plot:
第一類格式=>一個一維陣列(1D Array),其陣列元素是一個群組,此群組只有2個群組元素,分別是「X座標」和「Y座標」。
表示法:[<x1/y1>,<x2/y2>,<x3/y3>,<x4/y4>,...]
第二類格式=>一個群組(cluster),群組內只有2個群組元素,分別是「X座標的一維陣列」和「Y座標的一維陣列」。
表示法: < [x1,x2,x3,x4,......] / [y1,y2,y3,y4,......] >
2.Multi Plot:
第一類格式=> 一個一維陣列,其陣列元素是群組;但群組內的元素只有一個一維陣列,陣列中每個元素又是一個群組,裡面有兩個群組元素,分別是X座標和Y座標。(好像繞口令XD)
表示法:
[ < [<AX1/AY1>,<AX2/AY2>,<AX3/AY3>,<AX4/AY4>,...] >,
< [<BX1/BY1>,<BX2/BY2>,<BX3/BY3>,<BX4/BY4>,...] >,
< [<CX1/CY1>,<CX2/CY2>,<CX3/CY3>,<CX4/CY4>,...] >, ...]
上面每個顏色就是一組資料,可畫出一條線,這種格式可說是Single Plot第一類格式的組合。
這個資料格式有點複雜,每一條線(plot)的資料就是一個一維陣列,但因為每條線上點數可能不同,導致每個一維陣列的長度不同,所以無法直接build成二維陣列,而是必須先透過bundle,將其轉換為群組,才能使用build array,組成一個群組陣列,最後再輸入到XY Graph...我個人不建議使用這個資料格式,畢竟太容易搞混了。
第二類格式=> 一個一維的群組陣列,每個群組元素包含兩個物件,分別是X座標的一維陣列、Y座標的一維陣列。
表示法: [ <[Ax1,Ax2,Ax3,Ax4,...] / [Ay1,Ay2,Ay3,Ay4,...]>,
<[Bx1,Bx2,Bx3,Bx4,...] / [By1,By2,By3,By4,...]>,
<[Cx1,Cx2,Cx3,Cx4,...] / [Cy1,Cy2,Cy3,Cy4,...]>, ...]
上面每個顏色就是一組資料,可畫出一條線,這種格式可說是Single Plot第二類格式的組合。
總的來說,我覺得不管是Single Plot還是Multi Plot,都是以第二類畫法比較直觀,也就是說,想要畫XY分布圖時,應該產生第二類格式的資料會比較方便一些。
[注意]
在畫Multi Plot的時候,有時候可能因為輸入的資料是兩個不同的類型,
所以需要兩個Y軸的座標(不同單位或是不同比例)。
這時候只要在XY Graph原來的Y軸上按右鍵就可以看到快速選單,
點選Duplicate Scale,就會出現新增的Y軸座標,
然後再點選Swap Side,就可以把它移到右邊去。
=============
另外,使用DAQ Express VI的人可以搭配另一種用法,
這個函數叫做Build XY Graph Express VI,
他是屬於Express VI,而非一般的函數。
注意!這函數不存在於Function Palette內,
所以你在Block Diagram這邊是找不到的,
而是必須在Front Panel按右鍵進Control Palette內,
然後選擇Modern->Graph->「Ex XY Graph」,
這個函數才會跟著XY Graph一起出現在Block Diagram!
(目前連Silver和Classic這兩個系列都沒有喔!)
如下圖:
這時候只要搭配迴圈,把每一次獲得的最新資料丟入,
他就會自動幫你記憶所有資料點來畫圖了,
類似Waveform Chart有內建資料buffer的效果一樣。
留言列表